使用OpenSSL API以编程方式验证证书链 |
您所在的位置:网站首页 › openssl x509 verify › 使用OpenSSL API以编程方式验证证书链 |
这与其他问题非常相似,但我看过的那些问题要么没有答案,要么不完全问同样的问题。我有一个自签名的CA证书,以及另外两个用该CA证书签名的证书。我相当确定证书是正确的,因为'openssl验证‘是有效的: $ openssl verify -CAfile ca.pem server.pem server.pem: OK(上面是我记忆中的,我面前没有,所以可能会有一点偏差)。 现在,我想以编程方式验证证书。我有一个实用函数,伪代码如下: int verify_cert(X509 *cert, X509 *cacert) { int ret; X509_STORE *store; X509_STORE_CTX *ctx; store = X509_STORE_new(); X590_STORE_add_cert(store, cacert); ctx = X509_STORE_CTX_new(); X509_STORE_CTX_init(ctx, store, cert, NULL); ret = X590_verify_cert(ctx); /* check for errors and clean up */ }我的问题是上面的代码总是返回‘找不到颁发者证书’。我做错了什么?我相信我正在创建一个新的存储区,添加证书,创建一个新的上下文,并使用指向包含CA的存储区的指针将要验证的子证书添加到上下文中。很明显我做错了什么,但我不确定是什么。 有什么想法吗? 更新:我知道我可以将这些证书保存到磁盘上,然后使用X509_LOOKUP_file或类似的东西。我正在寻找一种不会不必要地接触磁盘的解决方案。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |